home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 26 / Cream of the Crop 26.iso / os2 / octa209s.zip / octave-2.09 / src / makefile.os2 < prev    next >
Makefile  |  1997-08-01  |  8KB  |  219 lines

  1. # Makefile for octave's src directory
  2. # Modified by Klaus Gebhardt, 1994 - 1996
  3.  
  4. TOPDIR = ..
  5.  
  6. include $(TOPDIR)/Makeconf.os2
  7.  
  8. srcdir = .
  9.  
  10. DLD_SRC := balance.cc chol.cc colloc.cc dassl.cc det.cc eig.cc \
  11.     expm.cc fft.cc fft2.cc filter.cc find.cc fsolve.cc \
  12.     getgrent.cc getpwent.cc getrusage.cc givens.cc \
  13.     hess.cc ifft.cc ifft2.cc inv.cc log.cc lpsolve.cc lsode.cc \
  14.     lu.cc minmax.cc pinv.cc qr.cc quad.cc \
  15.     qzval.cc rand.cc schur.cc sort.cc svd.cc syl.cc time.cc 
  16.  
  17. DLD_OBJ := $(patsubst %.cc, %.obj, $(DLD_SRC))
  18.  
  19. INCLUDES := builtins.h data.h defun.h defun-dld.h \
  20.     defun-int.h dirfns.h dynamic-ld.h error.h file-io.h \
  21.     fn-cache.h gripes.h help.h input.h lex.h load-save.h \
  22.     mappers.h oct.h oct-fstrm.h oct-hist.h oct-iostrm.h \
  23.     oct-map.h oct-obj.h oct-prcstrm.h \
  24.     oct-stdstrm.h oct-stream.h oct-strstrm.h pager.h parse.h \
  25.     pathlen.h pr-output.h pt-base.h pt-cmd.h \
  26.     pt-const.h pt-exp-base.h pt-exp.h pt-fcn.h pt-fvc-base.h \
  27.     pt-fvc.h pt-mat.h pt-misc.h pt-mvr-base.h pt-mvr.h \
  28.     pt-plot.h pt-pr-code.h pt-walk.h sighandlers.h symtab.h \
  29.     syscalls.h sysdep.h systime.h syswait.h token.h toplev.h \
  30.     unwind-prot.h utils.h variables.h version.h \
  31.     xdiv.h xpow.h BaseSLList.h Map.h SLList.h SLStack.h Stack.h \
  32.     ov-re-mat.h ov-cx-mat.h ov-ch-mat.h ov-struct.h ov-scalar.h \
  33.     ov-range.h ov-complex.h ov-va-args.h ov-colon.h ov-base.h \
  34.     ov-str-mat.h ov.h ov-typeinfo.h ops.h \
  35.     op-cm-cm.h op-cm-cs.h op-cm-m.h op-cm-s.h op-cs-cm.h \
  36.     op-cs-cs.h op-cs-m.h op-cs-s.h op-m-cm.h op-m-cs.h \
  37.     op-m-m.h op-m-s.h op-s-cm.h op-s-cs.h op-s-m.h op-s-s.h \
  38.     op-str-str.h
  39.  
  40. TI_SRC := Array-oc.cc Array-os.cc Array-tc.cc Map-fnc.cc Map-tc.cc \
  41.     SLList-expr.cc SLList-misc.cc SLList-plot.cc SLList-tc.cc \
  42.     SLList-tm.cc SLStack-i.cc SLStack-pc.cc SLStack-str.cc \
  43.     SLStack-sym.cc SLStack-tok.cc SLStack-ue.cc SLStack-ui.cc
  44.  
  45. TI_OBJ := $(patsubst %.cc, %.obj, $(TI_SRC))
  46.  
  47. SOURCES := BaseSLList.cc Map.cc SLList.cc SLStack.cc Stack.cc \
  48.     data.cc defaults.cc dirfns.cc dynamic-ld.cc error.cc \
  49.     file-io.cc fn-cache.cc gripes.cc help.cc input.cc lex.l \
  50.     load-save.cc mappers.cc matherr.c oct-fstrm.cc oct-hist.cc \
  51.     oct-iostrm.cc oct-map.cc oct-obj.cc oct-prcstrm.cc \
  52.     oct-stdstrm.cc oct-stream.cc oct-strstrm.cc \
  53.     pager.cc parse.y pr-output.cc pt-base.cc \
  54.     pt-cmd.cc pt-const.cc pt-exp-base.cc pt-exp.cc pt-fcn.cc \
  55.     pt-fvc-base.cc pt-fvc.cc pt-mat.cc pt-misc.cc pt-mvr-base.cc \
  56.     pt-mvr.cc pt-plot.cc pt-pr-code.cc \
  57.     sighandlers.cc strcasecmp.c strncase.c strfns.cc strftime.c \
  58.     symtab.cc syscalls.cc sysdep.cc token.cc toplev.cc \
  59.     unwind-prot.cc utils.cc variables.cc xdiv.cc xpow.cc \
  60.     ov-base.cc ov-ch-mat.cc ov-re-mat.cc ov-cx-mat.cc ov-range.cc \
  61.     ov-scalar.cc ov-complex.cc ov-str-mat.cc ov-struct.cc \
  62.     ov-va-args.cc ov-colon.cc ov.cc ov-typeinfo.cc ops.cc \
  63.     op-cm-cm.cc op-cm-cs.cc op-cm-m.cc op-cm-s.cc op-cs-cm.cc \
  64.     op-cs-cs.cc op-cs-m.cc op-cs-s.cc op-m-cm.cc op-m-cs.cc \
  65.     op-m-m.cc op-m-s.cc op-s-cm.cc op-s-cs.cc op-s-m.cc op-s-s.cc \
  66.     op-str-str.cc
  67.  
  68. OBJECTS_4 := $(SOURCES)
  69. OBJECTS_3 := $(patsubst %.l, %.obj, $(OBJECTS_4))
  70. OBJECTS_2 := $(patsubst %.y, %.obj, $(OBJECTS_3))
  71. OBJECTS_1 := $(patsubst %.c, %.obj, $(OBJECTS_2))
  72. OBJECTS := $(patsubst %.cc, %.obj, $(OBJECTS_1))
  73.  
  74. DEF_FILES_5 := $(SOURCES) $(OCT_SRC) $(DLD_SRC) $(TI_SRC) octave.cc
  75. DEF_FILES_4 := $(addprefix $(srcdir)/, $(DEF_FILES_5))
  76. DEF_FILES_3 := $(notdir $(shell grep -l "^DEFUN" $(DEF_FILES_4)))
  77. DEF_FILES_2 := $(patsubst %.y, %.df, $(DEF_FILES_3))
  78. DEF_FILES_1 := $(patsubst %.l, %.df, $(DEF_FILES_2))
  79. DEF_FILES := $(patsubst %.cc, %.df, $(DEF_FILES_1))
  80.  
  81. ###############################################################################
  82.  
  83. all: defaults.h oct-conf.h remove-procstream ../dll/octave1.dll ../octave.exe
  84. .PHONY: all
  85.  
  86. ###############################################################################
  87.  
  88. EXE_SRC   = octave.cc builtins.cc
  89. EXE_OBJ_1 = $(patsubst %.c, %.o, $(EXE_SRC))
  90. EXE_OBJ   = $(patsubst %.cc, %.o, $(EXE_OBJ_1))
  91. LIB_CRFT  = -L$(MSTDIR)/libcruft -lcruft1 -lcruft2 -lcruft3 -lcruft4
  92. LIB_OCTV  = -L$(MSTDIR)/liboctave -loctave2
  93. STD_LIBS  = -lreadline -lgnuinfo -lkpathsea -lxmalloc -lgpp2 -lstdcpp2 \
  94.     -lsocket -ldlfcn
  95. OCT_LIBS  = octave1.a $(LIB_CRFT) $(LIB_OCTV) $(STD_LIBS)
  96. LNK_FILES = $(EXE_OBJ) $(OCT_LIBS)
  97.  
  98. DEP_CRFTA = $(MSTDIR)/libcruft/cruft1.a $(MSTDIR)/libcruft/cruft2.a \
  99.     $(MSTDIR)/libcruft/cruft3.a $(MSTDIR)/libcruft/cruft4.a
  100. DEP_OCTVA = $(MSTDIR)/liboctave/octave2.a
  101. DEP_A     = $(DEP_CRFTA) $(DEP_OCTVA)
  102.  
  103. OCTAVE1   = octave1.def octave1-src.lib tinst-src.lib octdld-src.lib
  104. DLL_LIBS  = $(LIB_CRFT) $(LIB_OCTV) $(STD_LIBS)
  105. DLL_FILES = $(OCTAVE1) $(DLL_LIBS)
  106.  
  107. DEP_CRFTL = $(MSTDIR)/libcruft/cruft1.lib $(MSTDIR)/libcruft/cruft2.lib \
  108.     $(MSTDIR)/libcruft/cruft3.lib $(MSTDIR)/libcruft/cruft4.lib
  109. DEP_OCTVL = $(MSTDIR)/liboctave/octave2.a
  110. DEP_LIB   = $(DEP_CRFTL) $(DEP_OCTVL)
  111.  
  112. ###############################################################################
  113. # The executable: ../octave.exe
  114. ###############################################################################
  115.  
  116. $(DEF_FILES): mkdefs.cmd defun-int.h defun-dld.h defun.h # defaults.h
  117.  
  118. builtins.cc: $(DEF_FILES) mkbuiltins.cmd
  119.     @echo making $@ from $(DEF_FILES)
  120.     @-mkbuiltins $(DEF_FILES) > $@
  121.  
  122. octave: $(EXE_OBJ) octave1.a makefile.os2 $(DEP_A)
  123.     $(CC) -o $@ $(LNK_FILES) -Zcrtdll -Zstack 0x10000
  124.  
  125. ../octave.exe: octave
  126.     emxbind -bq h:/apps/c/emx/bin/emxl $< $@
  127.     emxbind -sq $@
  128.  
  129. ###############################################################################
  130. # The dynamic link library: ../dll/octave1.dll
  131. ###############################################################################
  132.  
  133. tinst-src.lib: $(TI_OBJ)
  134.     @rm -f $@ 
  135.     emxomfar $(ARFLAGS) $@ $(TI_OBJ)
  136.  
  137. octdld-src.lib: $(DLD_OBJ)
  138.     @rm -f $@ 
  139.     emxomfar $(ARFLAGS) $@ $(DLD_OBJ)
  140.  
  141. octave1-src.lib: $(OBJECTS)
  142.     @rm -f $@ 
  143.     emxomfar -p32 $(ARFLAGS) $@ $(OBJECTS)
  144.  
  145. octave1.def: octave1-src.lib octdld-src.lib tinst-src.lib
  146.     @echo LIBRARY octave1 INITINSTANCE TERMINSTANCE > $@
  147.     @echo DESCRIPTION 'octave1.dll, (c) Klaus Gebhardt 1995-1996' >> $@
  148.     @echo. >> $@
  149.     @echo DATA >> $@
  150.     @echo   MULTIPLE NONSHARED >> $@
  151.     @echo. >> $@
  152.     @echo EXPORTS >> $@
  153.     emxexp -o00001 -n octdld-src.lib >> $@
  154.     emxexp -o20001 -n octave1-src.lib >> $@
  155.     emxexp -o30001 -n tinst-src.lib >> $@
  156.  
  157. ../dll/octave1.dll: $(OCTAVE1) octave1.a octave1.lib $(DEP_LIB)
  158.     $(CC) -o $@ $(DLL_FILES) -Zdll -Zomf -Zcrtdll
  159.  
  160. ###############################################################################
  161.  
  162. defaults.h: ../defaults.emx
  163.     cp ../defaults.emx defaults.h
  164.  
  165. oct-conf.h: ../oct-conf.emx
  166.     cp ../oct-conf.emx oct-conf.h
  167.  
  168. ###############################################################################
  169.  
  170. mkdefs.cmd: mkdefs
  171.     echo extproc ksh .\\/$@ > $@
  172.     echo shift >> $@
  173.     echo #Generated by makefile.os2. Do not edit! >> $@
  174.     sed -e "s/#!\\/bin\\/sh//" $< >> $@
  175.  
  176. mkbuiltins.cmd: mkbuiltins
  177.     echo extproc ksh .\\/$@ > $@
  178.     echo shift >> $@
  179.     echo #Generated by makefile.os2. Do not edit! >> $@
  180.     sed -e "s/#!\\/bin\\/sh//" $< >> $@
  181.  
  182. ###############################################################################
  183.  
  184. remove-procstream:
  185.     rm -f procstream.* oct-procbuf.*
  186.  
  187. ###############################################################################
  188.  
  189. clean: remove-procstream
  190.     rm -f *.a *.lib *.o *.obj *.df *.def
  191.     rm -f lex.cc parse.cc y.tab.h builtins.cc defaults.h oct-conf.h
  192.     rm -f octave ../octave.exe ../dll/octave1.dll
  193.  
  194. ###############################################################################
  195.  
  196. defaults.obj:    defaults.cc defaults.h version.h
  197. dynamic-ld.obj:  dynamic-ld.cc defaults.h
  198. fn-cache.obj:    fn-cache.cc defaults.h
  199. help.obj:        help.cc defaults.h
  200. oct-hist.obj:    oct-hist.cc defaults.h
  201. octave.o:         octave.cc defaults.h version.h
  202. pager.obj:       pager.cc defaults.h
  203. pt-fcn.obj:      pt-fcn.cc defaults.h
  204. toplev.obj:         toplev.cc defaults.h version.h oct-conf.h
  205. utils.obj:       utils.cc defaults.h
  206. variables.obj:   variables.cc defaults.h version.h
  207.  
  208. help.df:       help.cc defaults.h
  209. oct-hist.df:   oct-hist.cc defaults.h
  210. pager.df:      pager.cc defaults.h
  211. pt-fcn.df:     pt-fcn.cc defaults.h
  212. toplev.df:     toplev.cc defaults.h version.h oct-conf.h
  213. utils.df:      utils.cc defaults.h
  214. variables.df:  variables.cc defaults.h version.h
  215.  
  216. lex.cc:        lex.l lex.h y.tab.h
  217. y.tab.h:       parse.cc
  218. parse.cc:      parse.y parse.h
  219.